import { PermissionsEnum } from '@/enums/permissionsEnum';

// 操作项的接口定义
export interface ActionItem {
  onClick?: Fn; // 点击事件回调函数
  label?: string; // 操作项的标签
  icon?: string; // 操作项的图标
  key?: string; // 操作项的键
  popConfirm?: PopConfirm; // 弹出确认框的配置
  size?: string; // 操作项的尺寸
  type?: string; // 操作项的类型
  plain?: boolean; // 是否为朴素样式
  round?: boolean; // 是否为圆角样式
  circle?: boolean; // 是否为圆形样式
  loading?: boolean; // 是否显示加载状态
  disabled?: boolean; // 是否禁用
  autofocus?: boolean; // 是否自动聚焦
  nativeType?: string; // 原生 HTML 按钮类型
  autoInsertSpace?: boolean; // 是否自动插入空格
  auth?: PermissionsEnum | PermissionsEnum[] | string | string[]; // 权限编码控制是否显示
  ifShow?: boolean | ((action: ActionItem) => boolean); // 业务控制是否显示
}

// 弹出确认框的接口定义
export interface PopConfirm {
  title: string; // 确认框的标题
  okText?: string; // 确认按钮的文本
  cancelText?: string; // 取消按钮的文本
  confirm: Fn; // 确认回调函数
  cancel?: Fn; // 取消回调函数
  icon?: string; // 确认框的图标
}
